import AuthUtil from '@/cfsheep/api/cfAuth';
import UserApi from '@/cfsheep/api/cfUser';
import { appid } from "@/cfsheep/config";

let subscribeEventList = [];

// 加载微信小程序
function load() {
	checkUpdate();
}
 

// 微信小程序手机号授权登陆
const mobileWxLogin = async (data) => {
	return new Promise(async (resolve, reject) => {
		// 1. 获得微信 code
		const codeResult = await uni.login();
		console.log(codeResult);
		if (codeResult.errMsg !== 'login:ok') {
			return resolve(false);
		}

		data.code = codeResult.code
		data.appid = appid
		// 2. 一键登录
		const loginResult = await AuthUtil.weixinMiniAppLogin(data);
		console.log('登陆个人信息', loginResult)
		if (loginResult.code === 10002) {
			// 获取手机号
			 
			setUserInfo(loginResult.data)
			setUserId(loginResult.data.id);
			return resolve(true);
		} else {
			return resolve(false);
		}

	});
};

// 微信小程序手机号授权登陆
const getPhoneNumberByCode = async (data) => {
	return new Promise(async (resolve, reject) => {
		// 1. 获得微信 code
		const codeResult = await uni.login();
		console.log(codeResult);
		if (codeResult.errMsg !== 'login:ok') {
			return resolve(false);
		}

		data.code = codeResult.code
		data.appid = appid

		// {
		// 	code: e.detail.code,
		// 	platform: 'wx_mp',
		// 	appid: wxAppid
		// }
		// 2. 一键登录
		const loginResult = await AuthUtil.getUserPhonenumber(data);
		console.log('登陆个人信息', loginResult)
		if (loginResult.code === 10002) {
			setUserInfo(loginResult.data)
			setUserId(loginResult.data.id);

			return resolve(true);
		} else {
			return resolve(false);
		}





	});
};

// 微信小程序手机号授权登陆
const getPhoneNumber = async (data) => {
	return new Promise(async (resolve, reject) => {
		// 1. 获得微信 code
		const codeResult = await uni.login();
		console.log(codeResult);
		if (codeResult.errMsg !== 'login:ok') {
			return resolve(false);
		}

		data.code = codeResult.code
		data.appid = appid

		// {
		// 	code: e.detail.code,
		// 	platform: 'wx_mp',
		// 	appid: wxAppid
		// }
		// 2. 一键登录
		const loginResult = await AuthUtil.getUserPhonenumber(data);
		console.log('登陆个人信息', loginResult)
		if (loginResult.code === 10002) {
			setUserInfo(loginResult.data)
			setUserId(loginResult.data.id);

			return resolve(true);
		} else {
			return resolve(false);
		}





	});
};
 // 绑定用户手机号
 const bindUserPhoneNumber = (e) => {
   return new Promise(async (resolve, reject) => {
	   let data = {appid : appid,code:e.code,platform :'wx_mp'}
	  
     const { code } = await AuthUtil.updateUserMobileByWeixin(data);
     if (code === 0) {
       resolve(true);
     }
     resolve(false);
   });
 };

// 设置 userId 到本地存储， 
function setUserId(userId) {
	uni.setStorageSync('userId', userId);
}

 

// 缓存用户信息
function setUserInfo(data) {
	 uni.setStorageSync('userInfo', data);
}
function getInfo() {
	 uni.getStorageSync('userInfo');
}

// ========== 非登录相关的逻辑 ==========

// 小程序更新
const checkUpdate = async (silence = true) => {
	if (uni.canIUse('getUpdateManager')) {
		const updateManager = uni.getUpdateManager();
		updateManager.onCheckForUpdate(function(res) {
			// 请求完新版本信息的回调
			if (res.hasUpdate) {
				updateManager.onUpdateReady(function() {
					uni.showModal({
						title: '更新提示',
						content: '新版本已经准备好，是否重启应用？',
						success: function(res) {
							if (res.confirm) {
								// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
								updateManager.applyUpdate();
							}
						},
					});
				});
				updateManager.onUpdateFailed(function() {
					// 新的版本下载失败
					// uni.showModal({
					//   title: '已经有新版本了哟~',
					//   content: '新版本已经上线啦，请您删除当前小程序，重新搜索打开~',
					// });
				});
			} else {
				if (!silence) {
					uni.showModal({
						title: '当前为最新版本',
						showCancel: false,
					});
				}
			}
		});
	}
};



export default {
	load,  
	mobileWxLogin,
	getInfo, 
	bindUserPhoneNumber,
	checkUpdate
};
